// UI 工具函数模块

/**
 * 显示模态框
 * @param {string} modalId 模态框元素ID
 */
export function showModal(modalId) {
    const modal = document.getElementById(modalId);
    if (modal) {
        modal.classList.remove('hidden');
    }
}

/**
 * 隐藏模态框
 * @param {string} modalId 模态框元素ID
 */
export function hideModal(modalId) {
    const modal = document.getElementById(modalId);
    if (modal) {
        modal.classList.add('hidden');
    }
}

/**
 * HTML 转义函数
 * @param {string} text 需要转义的文本
 * @returns {string} 转义后的安全文本
 */
export function escapeHtml(text) {
    return text
        .replace(/&/g, "&amp;")
        .replace(/</g, "&lt;")
        .replace(/>/g, "&gt;")
        .replace(/"/g, "&quot;")
        .replace(/'/g, "&#039;");
}

/**
 * 初始化模态框事件处理
 */
export function initModalEvents() {
    // 点击模态框外部关闭
    document.getElementById('configModal').addEventListener('click', function(e) {
        if (e.target === document.getElementById('configModal')) {
            hideConfigModal();
        }
    });

    // 按ESC键关闭模态框
    document.addEventListener('keydown', function(e) {
        if (e.key === 'Escape' && !document.getElementById('configModal').classList.contains('hidden')) {
            hideConfigModal();
        }
    });
}

/**
 * 格式化价格显示
 * @param {number} price 价格数值
 * @returns {string} 格式化后的价格字符串
 */
export function formatPrice(price) {
    return '¥' + price.toFixed(2);
}

/**
 * 格式化百分比显示
 * @param {number} value 数值（0-1之间）
 * @param {number} decimals 小数位数
 * @returns {string} 格式化后的百分比字符串
 */
export function formatPercentage(value, decimals = 2) {
    return (value * 100).toFixed(decimals) + '%';
}